package com.gitee.qdbp.jdbc.plugins.impl;

import java.net.URL;
import java.util.List;
import com.gitee.qdbp.able.matches.FileMatcher;
import com.gitee.qdbp.able.matches.StringMatcher.LogicType;
import com.gitee.qdbp.able.matches.WrapFileMatcher;
import com.gitee.qdbp.tools.files.PathTools;
import com.gitee.qdbp.tools.utils.StringTools;

/**
 * SQL模板文件扫描接口的简单实现类<br>
 * 只会取第1个星号前面的部分作为文件夹名称, 最后的文件名作为文件匹配规则<br>
 * 如: settings/sqls/&#42;&#42;/&#42;.sql<br>
 * 拆解为查找settings/sqls/文件夹下所有的&#42;.sql文件<br>
 * 即第1个星号后面到文件名之间, 无论配置什么都是不起作用的<br>
 *
 * @author zhaohuihua
 * @version 20200830
 * @since 3.2.0
 */
public class SimpleSqlFileScanner extends BaseSqlFileScanner {

    public SimpleSqlFileScanner() {
        super();
    }

    public SimpleSqlFileScanner(String patterns) {
        super(patterns);
    }

    @Override
    protected List<URL> scanSqlFiles(String pattern) {
        String folder = StringTools.removeSuffixAt(pattern, '*');
        String filter = PathTools.getFileName(pattern);
        FileMatcher matcher = WrapFileMatcher.parseMatchers(filter, LogicType.OR, "name", "ant", ',', '\n');
        return PathTools.scanResources(folder, matcher);
    }
}
